package com.xianyun.site.iblog.gatewayimpl.database;

import com.xianyun.site.iblog.gatewayimpl.database.domainobject.SocialUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 三方账号信息Mapper
 * @author mac_zyj
 */
@Mapper
public interface SocialUserMapper {

    /**
     * 根据条件查询三方用户信息
     * @param socialUser 三方用户信息
     * @return 结果
     */
    List<SocialUserDO> selectSocialUserBySort(SocialUserDO socialUser);


    /**
     * 根据用户Id和对应场景查询
     * @param uid 用户Id
     * @param source 三方登录来源
     * @return AuthToken
     */
    SocialUserDO getSocialUserByUid(@Param("uid") String uid, @Param("source") String source);

    /**
     * 根据第三方系统的唯一ID
     * @param uuid 第三方系统的唯一ID
     * @param source 三方登录来源
     * @return AuthToken
     */
    SocialUserDO getSocialUserByUuid(@Param("uuid") String uuid, @Param("source") String source);

    /**
     * 保存三方账号信息
     * @param socialUser 三方账号信息
     */
    void saveSocialUserInfo(SocialUserDO socialUser);


    /**
     * 修改三方账号信息
     * @param socialUser 三方账号信息
     */
    void updateSocialUserInfo(SocialUserDO socialUser);

    /**
     * 保存用户社交关联
     * @param socialId 三方ID
     * @param uid 用户ID
     */
    void saveUserLindWithSocial(@Param("socialId") int socialId, @Param("uid") int uid);
}
